#ifndef __ACTION_FUNC_H__
#define __ACTION_FUNC_H__

#include <stdio.h>
#include "cJSON.h"

#define STRINGIFY(x) #x

#define MQTT_TOPIC_NUMBER   46

// 声明函数指针类型
typedef int (*HzFunctionPointer)(char *id, cJSON *filter, cJSON *config);
extern HzFunctionPointer functionPointers[MQTT_TOPIC_NUMBER];

int hz_list_project(char *id, cJSON *filter, cJSON *config);
int hz_list_space(char *id, cJSON *filter, cJSON *config);
int hz_list_region(char *id, cJSON *filter, cJSON *config);
int hz_list_group(char *id, cJSON *filter, cJSON *config);
int hz_list_scene(char *id, cJSON *filter, cJSON *config);
int hz_list_device(char *id, cJSON *filter, cJSON *config);
int hz_detail_project(char *id, cJSON *filter, cJSON *config);
int hz_detail_space(char *id, cJSON *filter, cJSON *config);
int hz_detail_region(char *id, cJSON *filter, cJSON *config);
int hz_detail_group(char *id, cJSON *filter, cJSON *config);
int hz_detail_scene(char *id, cJSON *filter, cJSON *config);
int hz_detail_device(char *id, cJSON *filter, cJSON *config);
int hz_status_project(char *id, cJSON *filter, cJSON *config);
int hz_status_space(char *id, cJSON *filter, cJSON *config);
int hz_status_region(char *id, cJSON *filter, cJSON *config);
int hz_status_group(char *id, cJSON *filter, cJSON *config);
int hz_status_scene(char *id, cJSON *filter, cJSON *config);
int hz_status_device(char *id, cJSON *filter, cJSON *config);
int hz_modify_project(char *id, cJSON *filter, cJSON *config);
int hz_modify_space(char *id, cJSON *filter, cJSON *config);
int hz_modify_region(char *id, cJSON *filter, cJSON *config);
int hz_modify_group(char *id, cJSON *filter, cJSON *config);
int hz_modify_scene(char *id, cJSON *filter, cJSON *config);
int hz_modify_device(char *id, cJSON *filter, cJSON *config);
int hz_control_all(char *id, cJSON *filter, cJSON *config);
int hz_control_project(char *id, cJSON *filter, cJSON *config);
int hz_control_space(char *id, cJSON *filter, cJSON *config);
int hz_control_region(char *id, cJSON *filter, cJSON *config);
int hz_control_group(char *id, cJSON *filter, cJSON *config);
int hz_control_scene(char *id, cJSON *filter, cJSON *config);
int hz_control_device(char *id, cJSON *filter, cJSON *config);
int hz_log_project(char *id, cJSON *filter, cJSON *config);
int hz_log_space(char *id, cJSON *filter, cJSON *config);
int hz_log_region(char *id, cJSON *filter, cJSON *config);
int hz_log_group(char *id, cJSON *filter, cJSON *config);
int hz_log_scene(char *id, cJSON *filter, cJSON *config);
int hz_log_device(char *id, cJSON *filter, cJSON *config);
int hz_energy_all(char *id, cJSON *filter, cJSON *config);
int hz_energy_project(char *id, cJSON *filter, cJSON *config);
int hz_energy_space(char *id, cJSON *filter, cJSON *config);
int hz_energy_region(char *id, cJSON *filter, cJSON *config);
int hz_energy_group(char *id, cJSON *filter, cJSON *config);
int hz_energy_device(char *id, cJSON *filter, cJSON *config);
int hz_event_message(char *id, cJSON *filter, cJSON *config);
int hz_event_alert(char *id, cJSON *filter, cJSON *config);
int hz_event_fault(char *id, cJSON *filter, cJSON *config);


#endif
